<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="keywords" content="" />
    <meta name="author" content="Ckryo">
    <link rel="icon" href="/favicon.ico">
    <!-- page title -->
    <title>LY'S-BLOG</title>
    <!-- bootstrap css -->
    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <link href="//cdn.bootcss.com/animate.css/3.5.2/animate.min.css" rel="stylesheet">
    <!-- css -->
    <link href="/css/style.css" rel="stylesheet">
    <link href="/css/animate.css" rel="stylesheet">
    <link href="/css/magnific-popup.css" rel="stylesheet">
    <!-- fonts -->
    <link href="/css/font-awesome.min.css" rel="stylesheet" type="text/css">
    <link href='/fonts/FontAwesome.otf' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="/css/linear-icons.css">
    <link rel="stylesheet" href="/css/share.min.css">
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="/https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="/https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
    <!-- javascript -->
    <script src="/js/jquery.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script src="/js/jquery.easing.min.js"></script>
</head>
<body data-spy="scroll" data-target="#post-scroll-spy">
    <!-- preloader -->
    <div id="preloader">
        <div class="spinner spinner-round"></div>
    </div>
    <!-- / preloader -->
    <!-- header -->
    <header>
        <!-- nav -->
        <nav class="navbar navbar-default">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-logo" href="/index.html">
                        LY'S blog
                    </a>
                </div>
                <!-- / navbar-header -->
                
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                    	
                        <li>
	                        <a href="/project/index.html">
	                        	
	                        	<span>项目</span>
	                        </a>
                        </li>
                        
                        <li>
	                        <a href="/post/index.html">
	                        	
	                        	<span>文章</span>
	                        </a>
                        </li>
                        
                        <li>
	                        <a href="/about.html">
	                        	
	                        	<span>关于我</span>
	                        </a>
                        </li>
                        
                    </ul>
                </div>
                
                <!--/ nav-collapse -->
            <!-- / container -->
        </nav>
        <!-- / nav -->
        <!-- header-banner -->
        <div id="header-banner" class="demo-1"  style="background-image: url(/images/banner-bg.jpg)" >
    <div class="banner-content text-center">
        <div class="banner-info">
            <h1 id="banner-title">罗渊的博客</h1>
            <p id="banner-description" style="display: none" data-in-effect="rotateInUpRight">
                追求知识的小星星
            </p>
        </div>
        <!-- / banner-info -->
    </div>
    <!-- / banner-content -->
</div>
        <!-- / header-banner -->
    </header>
    <!-- / header -->
    <!-- / content -->
    <!-- content -->
<link rel="stylesheet" href="/css/i_slidebar.css">
<link rel="stylesheet" href="/css/i_post.css">
<div id="page-content" class="container">
    <!-- blog content + sidebar -->
    <section>
        <div class="row">
            <!-- blog content area -->
            <div class="col-sm-8 col-md-9">
            	

    
        <article class="post-item">
            <div class="blog block post-content-area">
                
                    <a href="2018/08/09/考研复习/数学/高等数学/2018-8-6-微分中值定理与导数的应用/"><img src="images/post_1.jpg"></a>
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/08/09/考研复习/数学/高等数学/2018-8-6-微分中值定理与导数的应用/"><h1>数学复习之高等数学（三）：微分中值定理与导数的应用</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.08</span>
                      <a href="#" class="post-author">
                        
                            数学
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        微分中值定理的证明罗尔定理
定理：
若$f(x) \in c[a,b]$, 
同时在区间(a,b)可导，
且$f(a) = f(b)$
则$\exists \epsilon \in (a,b) ,使f’(\epsilon) = 0$

证明：$\because f(x) \in c[a,b]$,则存在最大值最小值M和m

m = M
最大值等于最小值，则f(x) = c, f’(x)在(a,b)上处处为0

m &lt; M

$\because f(a) = f(b)$，所以f(a)，f(b)不同时为极值点
所以在区间(a,b)内有极值，又因为f(x)在(a,b)上可导，
得出$\exists \epsilon \in (a,b)，使f’(\epsilon) = 0$


拉格朗日中值定理
定理：
若$f(x) \in c[a,b]$
同时在(a,b)上可导
那么$\exists \epsilon \in (a,b)，使\frac {f(b) - f(a)}{b - a} = f’(\epsilon)$

证明：令$\phi(x) = f(x) - f(a) - \frac {f(b) - f(a)}{b - a} (x-a)$
柯西中值定理泰勒中值定理

洛必达法则

证明：
解题技巧常用的泰勒展开式
$e^x = 1 + x + \frac {x^2}{2!} + \cdots + \frac {x^n}{n!} + o(x^n)$
$\sin x = x - \frac {x^3}{3!} + \frac {x^5}{5!} - \cdots + (-1)^n \frac {x^{2n+1}}{(2n+1)!} + o(x^{2n+1})$
$\cos x = 1 - \frac {x^2}{2!} + \frac {x^4}{4!} + \cdots + (-1)^n \frac {x^{2n}}{(2n)!} + o(x^{2n})$
$\ln (1+x) = x - \frac {x^2}{2!} + \frac {x^3}{3!} - \cdots + (-1)^n \frac {x^{n+1}}{(n+1)!} + o(x^{n+1})$
$\frac {1}{1-x} = 1 + x + x^2 + x^3 + \cdots + x^n + o(x^n)$
$(1+x)^m = 1 + mx + \frac {m(m-1)}{2!} + \cdots + \frac {m(m-1)  \cdots (m-n+1)}{n!}x^n + o(x^n)$


                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/08/09/考研复习/数学/高等数学/2018-8-6-微分中值定理与导数的应用/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">数学</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/08/06/考研复习/数学/高等数学/2018-8-4-导数与微分/"><h1>数学复习之高等数学（二）：导数与微分</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.08</span>
                      <a href="#" class="post-author">
                        
                            数学
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        主要概念
导数
$$f’(x_0) = \frac {dy}{dx} = \lim_{\Delta x \to 0} \frac {f(x_0 + \Delta x) - f(x_0)}{\Delta x}$$

微分
$$y = f(x) \ (x \in D), x_0 \in D则 \Delta y = f(x_0 + \Delta x) - f(x_0),如果 \Delta y = A \cdot \Delta x + o(\Delta x)，称y=f(x)在x=x_0处可微。 $$


求导工具
基本公式
$$(C)’ = 0$$
$$(x^a)’ = a \cdot x^{a-1}$$
$$(a^x)’ = a^x \cdot \ln a​$$
$$(\log_a x)’ = \frac 1{x \cdot \ln a}, (\ln x)’ = \frac 1x$$
$$\begin{cases} \sin ‘x = cosx \\ \cos x = -\sin x \\ \tan’x = \sec^2x \\ \cot’x =  -\csc^2x \\ \sec’x = \sec x \cdot \tan x  \\ \csc’x = -\csc x \cdot \cot x  \end{cases}$$
$$\begin{cases} \arcsin’x  = \frac 1{\sqrt {1-x^2}} \\ \arccos’x =  -\frac 1{\sqrt {1-x^2}} \\ \arctan’x =  \frac 1{1+x^2} \\ arccos’x = -\frac 1{1+x^2} \end{cases}$$




                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/08/06/考研复习/数学/高等数学/2018-8-4-导数与微分/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">高等数学</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/08/04/考研复习/数学/线性代数/2018-8-4-行列式/"><h1>数学复习之线性代数（一）：行列式</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.08</span>
                      <a href="#" class="post-author">
                        
                            数学
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        主要概念
线性代数的核心
$$核心 \begin{cases} 线性方程组（三大工具：行列式、矩阵、向量） \\ 矩阵对角化 \end{cases}$$


核心方法
容易算的行列式
$$\begin{vmatrix} a_{11}&amp;0&amp;0 \\ \vdots&amp;\ddots&amp;0 \\ a_{n1}&amp;\cdots&amp;a_{nn} \end{vmatrix}(下三角)    = \begin{vmatrix} a_{11}&amp;\cdots&amp;a_{1n} \\ 0&amp;\ddots&amp;\vdots \\ 0&amp;0&amp;a_{nn} \end{vmatrix}(上三角) = \begin{vmatrix} a_{11}&amp;0&amp;0 \\ 0&amp;\ddots&amp;0 \\ 0&amp;0&amp;a_{nn} \end{vmatrix}(对角) = a_{11}\cdots a_{nn}$$

范德蒙行列式

$$如果v_n \neq 0 \Longleftrightarrow a_1 \cdots a_n 两两不等$$


$$\begin{vmatrix} A&amp;0 \\ 0&amp;B \end{vmatrix} = \begin{vmatrix} A&amp;C \\ 0&amp;B \end{vmatrix} = \begin{vmatrix} A&amp;0 \\ D&amp;B \end{vmatrix} = \vert A \vert \cdot \vert B \vert$$


行列式的性质
$D = D^T$

对调两行或两列，行列式变号。

行列式两行相同 = 一行或一列全为0 = 两行成比例  $\Rightarrow$（D=0）

把某一行的倍数加到另一行上，行列式的值不变。

$$\begin{vmatrix} a_1+b_1&amp;c_1 \\ a_2+b_2&amp;c_2 \end{vmatrix} = \begin{vmatrix} a_1&amp;c_1 \\ a_2&amp;c_2 \end{vmatrix} + \begin{vmatrix} b_1&amp;c_1 \\ b_2&amp;c_2 \end{vmatrix}$$

降阶

行列式的某一行乘以其代数余子式的值的和为D
行列式某一行项乘以其他行的代数余子式，结果为0.
$$A_{ij} = (-1)^{i+j} \cdot M_{ij}$$



克莱姆法则
                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/08/04/考研复习/数学/线性代数/2018-8-4-行列式/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">线性代数</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                
                    <a href="2018/08/01/考研复习/数学/高等数学/2018-8-1-极限与连续/"><img src="images/post_1.jpg"></a>
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/08/01/考研复习/数学/高等数学/2018-8-1-极限与连续/"><h1>数学复习之高等数学（一）：极限与连续</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.08</span>
                      <a href="#" class="post-author">
                        
                            数学
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        主要概念
数列的极限 （$\epsilon-N$）
如果 $\forall\epsilon&gt;0 ,\exists N&gt;0$，对任意的 $n&gt;N$， 存在 $\vert a_n - A \vert &lt; \epsilon$，则称数列 $a_n$收敛于A。
记为 $$\lim_{n \to \infty} a_n = A$$

函数的极限 （$\epsilon - \delta$）
如果 $\forall \epsilon &gt; 0, \exists \delta &gt; 0$，对任意的 $ 0 &lt; \vert x - a \vert &lt; \delta$，都有 $\vert f(x) - A \vert &lt; \epsilon$，那么称A为函数在趋近于a时的极限。记为 $$ \lim_{n \to a} f(x) $$

X的极限（$\epsilon - X$）
如果 $\forall \epsilon &gt; 0, \exists X &gt; 0$ ,对任意的有 x &gt; X, 存在 $\vert f(x) - A \vert &lt; \epsilon$， 那么称 $f(x)$趋于A。
记为 $$\lim_{x \to \infty} f(x) = A$$

无穷小
以0为极限就叫做无穷小，两个无穷小之间不能相减，可以相除。

极限的本质：无限的接近而不相等
如果 $\forall \epsilon &gt; 0, \exists \delta &gt; 0$，对任意的 $ 0 &lt; \vert x - a \vert &lt; \delta$，都有 $\vert f(x) - A \vert \le 3\epsilon$ ， 同样为函数极限的定义。

连续：极限值等于函数值就叫连续。

$$f(x)在x=a连续 \Leftrightarrow f(a-0) = f(a+0) = f(a)$$


闭区间连续
12如果f(x)在(a,b)内处处连续，f(a)=f(a+0)，f(b)=f(b-0)则称：f(x)在[a,b]上连续，记为f(x)属于c[a,b]

间断
$$如果lim_{x \to a} f(x) \neq f(a)，称x=a为f(x)的间断点$$

第一类间断点：$f(a-0),f(a+0) \exists$

$$\begin{cases} f(a-0) = f(a+0) \neq f(a)&amp; a为可去间断点 \\ f(a-0) \neq f(a+0)&amp;a为跳跃间断点 \end{cases}$$

第二类间断点：$f(a-0),f(a+0)$至少有一个不存在



                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/08/01/考研复习/数学/高等数学/2018-8-1-极限与连续/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">数学</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/07/04/算法与数据结构/2018-7-4-一致性哈希算法/"><h1>一致性哈希算法详解与实现</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.07</span>
                      <a href="#" class="post-author">
                        
                            -
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        1. 算法简介一致性哈希算法可以有效的避免因为分布式节点增加或者删除引起的变化。
本文作者： 罗渊版权声明： 本博客所有文章除特别声明外，均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处！

                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/07/04/算法与数据结构/2018-7-4-一致性哈希算法/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">算法和数据结构</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/06/01/算法与数据结构/2018-6-1-红黑树/"><h1>红黑树的简单实现</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.06</span>
                      <a href="#" class="post-author">
                        
                            -
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        
红黑树

                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/06/01/算法与数据结构/2018-6-1-红黑树/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">算法和数据结构</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/05/29/算法与数据结构/2018-5-30-优先队列/"><h1>优先队列的简单实现</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.05</span>
                      <a href="#" class="post-author">
                        
                            -
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        1. 优先队列考虑这样一个问题: 输入N个整数，从中找出最大的M个整数。在有些时候，这个N可能是非常大的，甚至可以认为N趋近于无穷大。如果采用一般的思路，将输入进行排序后然后找出最大的M个整数，但是在N非常大的情况下，将会非常耗时。还有一种方法，是将每一个新的输入与已知的M个最大元素比较，但是，在M很大的情况下，代价依然非常高。其实，这个问题可以用优先队列来解决。
                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/05/29/算法与数据结构/2018-5-30-优先队列/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">算法和数据结构</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/02/20/编程/2018-2-20-docker入门/"><h1>docker入门</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.02</span>
                      <a href="#" class="post-author">
                        
                            -
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        

                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/02/20/编程/2018-2-20-docker入门/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">docker</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/02/19/编程/2018-2-19-正则表达式入门/"><h1>正则表达式入门</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.02</span>
                      <a href="#" class="post-author">
                        
                            -
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        

                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/02/19/编程/2018-2-19-正则表达式入门/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">编程</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    
        <article class="post-item">
            <div class="blog block post-content-area">
                

                <!-- 根据页面mathjax变量决定是否加载MathJax数学公式js -->
                <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


                <div class="post-info-box">
                    <a href="2018/02/03/项目/2018-2-3-聊天软件简要设计/"><h1>即时通讯软件设计简要分析</h1></a>
                    <div class="post-meta">
                      <span class="post-date">2018.02</span>
                      <a href="#" class="post-author">
                        
                            -
                        
                      </a>
                    </div>
                    <div style="max-height: 350px; overflow: hidden; line-height: 24px">
                        
本文主要简单分析一下使用Java设计一个简单的即时通讯软件的思路。

必备知识
                    </div>
                    <div class="blog-post-footer">
                        <a href="2018/02/03/项目/2018-2-3-聊天软件简要设计/" class="btn btn-primary-filled"><span>阅读全文</span><i class="fa fa-long-arrow-right"></i></a>
                        <div class="pull-right">
                            
                                <a href="#" class="post-tag">项目</a>
                            
                        </div>
                    </div>
                    <!-- / blog-post-footer -->
                </div>
                <!-- / post-info-box -->
            </div>
            <!-- / blog-block -->
        </article>
        <div class="space-50">&nbsp;</div>
        <!-- / col-sm-8 col-md-9 -->
    


            </div><!-- / col-sm-8 col-md-9 -->
            <!-- / blog content area -->
            <!-- blog sidebar area -->
            <div class="col-sm-4 col-md-3 blog-sidebar">
                <div class="blog block post-sidebar-widget">
    <img class="site-author-image" src="/images/my.jpg">
    <p class="site-author-name">阿文</p>
    <p class="site-author-description">Vimer</p>
    <!-- <div class="feed-link motion-element">
                        <a href="/atom.xml" rel="alternate">
                            <i class="fa fa-rss"></i> RSS
                        </a>
                    </div> -->
    <nav class="site-state motion-element">
        <div class="site-state-item site-state-posts">
            <a href="/archives">
                <!-- 计算文章 和 项目总数量 -->
                
                <span class="site-state-item-count">26</span>
                <span class="site-state-item-name">文章</span>
            </a>
        </div>
        <div class="site-state-item site-state-categories">
            <a href="/categories">
	            <span class="site-state-item-count">0</span>
	            <span class="site-state-item-name">项目</span>
            </a>
        </div>
    </nav>
</div>
            </div><!-- / col-sm-4 col-md-3 -->
            <!-- / blog sidebar area -->
        </div><!-- / row -->
    </section>
    <!-- / blog content + sidebar -->

    <!-- pagination -->
    
  <div class="pagination">
    
      <a style="display: inline-block; height: 42px; width: 1px"></a>
    

    
    	<a href="/page/2/" class="btn btn-direction btn-default-filled pull-right"><span>下一页</span><i class="fa fa-long-arrow-right"></i></a>
    
  </div>

    <!-- / pagination -->

</div><!-- / container -->

<!-- / content -->

        <!-- / content -->
</body>
<!-- footer -->
<footer>
    <div class="container">
        <p class="footer-info">© Made by gitlily</p>
    </div>
    <!-- / container -->
</footer>
<!-- / footer -->
<!-- portfolio -->
<script src="/js/custom.js"></script>
<script src="/js/jquery.shuffle.min.js"></script>
<!-- lightbox -->
<script src="/js/jquery.magnific-popup.min.js"></script>
<!-- / lightbox -->
<!-- / portfolio -->
<!-- preloader -->
<script src="/js/preloader.js"></script>
<!-- / preloader -->
<!-- / javascript -->
<script src="/js/jquery.lettering.js"></script>
<script src="/js/jquery.textillate.js"></script>
<script>
$(function() {
    $('#banner-title').textillate({
        in: {
            // set the effect name
            effect: 'fadeInDown',
            callback: function() {
                $('#banner-description').css('display', 'block');
                $('#banner-description').textillate();
            }
        },
        // set the type of token to animate (available types: 'char' and 'word')
        type: 'char'
    });
});
</script>

</html>